今天會使用到foreach,所以開頭我們先來學一下要怎麼使用Foreach。
什麼時候會用到Foreach呢? 當我們有一個UI是這樣子按照排列下去的。這樣就會自動幫你建立Text方塊排列下去。
舉個例子,我有這樣一個程式 裡面包含添加今日成績,當我輸入一個成績,就存在Array裡,Array每多一個數值,在我的secondView裡的list就多一個Text方塊(顯示今輸入過的成績,一個個顯示下來)。這個時候就可以使用foreach。
其實foreach不會到很困難,接下來我們就教學如何使用foreach。
ForEach (1..<input.summ.count){ i in
Text(String(input.summ[i]))
}
這邊ForEach的概念基本就跟for迴圈的概念一樣,只不過我們用在UI上面而已。
我們搭配昨天的講解程式碼,input.summ.count(食物類別),.count就是代表Array裡有幾個數值。所以for迴圈就代表1到Array裡幾個數值。接著他就會自動依序列出來。
接著我們可以在外面包一圈list。這樣看起來稍微美觀一點。
list{
ForEach (1..<input.summ.count){ i in
Text(String(input.summ[i]))
}
}
接下來我們繼續開發為開發完成的APP
struct b1: View {
@EnvironmentObject var input: UserInput
var body: some View {
List{
ForEach (1..<input.summ.count){ i in
Text(input.summ[i] + " 熱量:"+String(input.sum[1]))
}
}
}
}
這邊b1我們可以寫成這樣,加上熱量、類型,這樣我們就差不多完成了!
我在學Apple的前端時,我就知道有舊的Storyboard,以及新的SwiftUI。當時無腦選擇SwiftUI沒有什麼特別的原因,就只是因為他是新的。
那你問我有沒有後悔?我的答案是,也不是。
因為其實我現在是後悔的,開發支援少,對比Storyboard,SwiftUI可以直接用的套件還很少,相對來說SwiftUI的開發時間就會更多了。
再來就是SwiftUI只支援ios 13以上,所以iPhone 6以下的用戶,你將會直接放棄他們。
那不後悔的原因很簡單,反正遲早都會換代,先學的Programmer有蟲吃xd。